package org.ehe.erp.domain.quality;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import org.ehe.common.mybatis.core.domain.BaseEntity2;
import org.hibernate.validator.constraints.Length;

import java.math.BigDecimal;
import java.time.LocalDate;

/**
 * 质检任务物料批次追溯实体类
 *
 * @author zhangnn
 * @className ErpQualityTaskBatch
 * @description 质检任务物料批次追溯表实体，记录质检任务使用的具体物料批次信息，用于批次追溯
 * @date 2025-09-10 15:00:00
 */
@Data
@TableName("erp_quality_task_batch")
public class ErpQualityTaskBatch extends BaseEntity2 {

    /** ID */
    @TableId(type = IdType.AUTO)
    private Long id;

    /** 质检任务ID */
    @NotNull(message = "质检任务ID不能为空")
    private Long taskId;

    /** 到货记录ID */
    @NotNull(message = "到货记录ID不能为空")
    private Long arrivalId;

    /** 批次ID */
    @NotNull(message = "批次ID不能为空")
    private Long batchId;

    /** 供应商ID */
    @NotNull(message = "供应商ID不能为空")
    private Long supplierId;

    /** 供应商名称 */
    @Length(max = 255, message = "供应商名称长度不能超过255字符")
    private String supplierName;

    /** 物料ID */
    @NotNull(message = "物料ID不能为空")
    private Long materialId;

    /** 物料名称 */
    @Length(max = 255, message = "物料名称长度不能超过255字符")
    private String materialName;

    /** 物料编码 */
    @Length(max = 100, message = "物料编码长度不能超过100字符")
    private String materialCode;

    /** 使用数量 */
    @NotNull(message = "使用数量不能为空")
    private BigDecimal usedQuantity;

    /** 批次号 */
    @Length(max = 255, message = "批次号长度不能超过255字符")
    private String batchNo;

    /** 生产日期 */
    private LocalDate productionDate;

    /** 有效期 */
    private LocalDate expiryDate;
}
